#coding:utf-8
__author__ = 'dong'

import Queue
import threading
import requests


class ThreadClass(threading.Thread):
    def __init__(self, queue):
        threading.Thread.__init__(self)
        self.queue = queue

    def run(self):
        """run方法用于执行功能"""
        # getName()用于获取线程名称
        while True:
            # 从队列中获取一个任务
            host = self.queue.get()
            # 开始抓取任务
            r = requests.get(host[1], stream=True)
            with open(host[0] + '.mp4', 'wb') as fd:
                for chunk in r.iter_content(chunk_size=10240):
                    if chunk:
                        fd.write(chunk)
            # 标记队列工作已完成
            self.queue.task_done()

def main(hosts):
    # 创建队列实例
    queue = Queue.Queue()

    # 生成一个线程池
    for i in range(len(hosts)):
        t = ThreadClass(queue)
        # 主程序退出时， 子线程也立即退出
        t.setDaemon(True)
        # 启动线程
        t.start()

    # 向队列中填充数据
    for key, value in hosts.items():
        queue.put([key, value])

    # 只到所有任务完成后，才退出主程序
    queue.join()

def test(fileName_url):
    print len(fileName_url)
    # for r in fileName_url:
    #     print fileName_url[r]
    #     # print r
    for key, value in fileName_url.items():
        print key, value